const express = require('express')
const cors = require('cors')

const app = express()
app.use(cors())
app.use(express.json())

// 自定义 CORS 头
app.use((req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', '*') // 允许所有来源
  res.setHeader('Access-Control-Allow-Methods', 'GET,POST,PUT,DELETE,OPTIONS') // 允许方法
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization') // 允许头
  res.setHeader('Access-Control-Allow-Credentials', 'true') // 是否允许携带 cookie
  if (req.method === 'OPTIONS') {
    return res.sendStatus(204) // 预检请求直接返回
  }
  next()
})

// 固定的国际化词条
const i18nData = {
  en: { hello: 'Hello', login: 'Login', welcome: 'Welcome!' },
  zh: { hello: '你好', login: '登录', welcome: '欢迎!' }
}

// 获取语言词条接口
app.get('/api/i18n', (req, res) => {
  const lang = req.query.lang || 'en'
  const keys = req.query.kes ? req.query.keys.split(',') : []
  const messages = i18nData[lang] || {}
  const result = {}

  if (keys.length > 0 ) {
    // 只返回前端请求的 key
    keys.forEach(k => {
        if (messages[key] !== undefined) result[key] = messages[k]
    })
  } else {
    // 如果没传 keys，就返回全部
    Object.assign(result, messages)
  }
  res.json(result)
})

app.listen(3001, () => {
  console.log('I18n server running at http://localhost:3001')
})